線程是程序執行的最小單位,它代表了在單個程序中的獨立執行流。一個 Java 程序實際上是一個包含一個或多個線程的進程。每個線程都有自己的執行路徑,可以並行執行不同的任務
在Java中,線程是通過 java.lang.Thread 類來表示的。要創建一個線程,通常有兩種方法:
1.繼承Thread類:您可以創建一個繼承自Thread 類的新類,並覆蓋 run 方法,該方法包含您要在線程中執行的代碼,然後可以實例化這個新類並調用 start 方法來啟動線程
class MyThread extends Thread {
public void run() {
// 線程執行的代碼
}
}
public class Main {
public static void main(String[] args) {
MyThread myThread = new MyThread();
myThread.start(); // 啟動線程
}
}
2.實現 Runnable 接口:另一種創建線程的方法是實現 java.lang.Runnable 接口。這允許您將 Runnable 對象傳遞給 Thread 構造函數,並在 run 方法中定義線程的行為
class MyRunnable implements Runnable {
public void run() {
// 線程執行的代碼
}
}
public class Main {
public static void main(String[] args) {
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
thread.start(); // 啟動線程
}
}
要啟動線程,需要調用線程對象的 start 方法。這將啟動線程,並在後台運行與 run 方法關聯的代碼。不要直接調用 run 方法,因為這將在當前線程中運行代碼,而不會創建新線程
Thread thread = new Thread(new MyRunnable());
thread.start(); // 啟動線程
Java 線程有不同的狀態,包括:
New(新建):線程已經創建,但尚未啟動。
Runnable(可運行):線程正在 Java 虛擬機中執行。
Blocked(阻塞):線程被阻塞並等待某些條件的解除。
Waiting(等待):線程等待另一個線程執行特定操作。
Timed Waiting(計時等待):線程等待一段時間後繼續執行。
Terminated(終止):線程已完成執行。
您可以使用 Java 的線程狀態來監視和管理線程的執行。
在多線程編程中,線程同步是一個關鍵概念。當多個線程訪問共享資源時,可能會導致數據不一致或競態條件。為了解決這些問題,可以使用 synchronized 或其他同步工具來協調線程的訪問。
public synchronized void synchronizedMethod() {
// 在這裡執行線程安全的操作
}
Java 提供了一些方法來管理線程的生命周期。可以使用 join 方法等待一個線程完成,或使用 interrupt 方法中斷線程的執行。還可以使用yield方法讓出CPU時間片給其他線程。
Thread thread = new Thread(new MyRunnable());
thread.start();
// 等待線程執行完成
try {
thread.join();
} catch (InterruptedException e) {
// 處理中斷異常
}
多線程編程是 Java 開發中的重要方面,允許利用多核處理器和提高程序的性能,今天就介紹到這邊,謝謝大家